Generally, in the image processing context, an image frame to be displayed on a screen (e.g., the screen of a television set) is represented by a matrix structure of digital information representing a grid of data or pixels. Each pixel is assigned several color components, each having a level or amplitude for the pixel in question. For example, these may be red R, green G and blue B components in the RGB calorimetric system, or luminosity Y and chrominance Cr and Cb in the YCbCr calorimetric system. Such a structure of pixels, or “bitmap”, therefore corresponds pixel by pixel to the image, with each pixel being referenced in the plane of the image by its address.
In the YCbCr colorimetric system, a sub-sampling of the chrominance components is generally performed and is usually expressed by the notation YCbCr-J:a:b (e.g., YCbCr-4:2:0). The J:a:b notation denotes the number of chrominance components in a conceptual region of J columns and two rows of pixels, where “a” is the number of samples of the chrominance components in the first row of J pixels, and “b” is the number of samples of the chrominance components in the second row of J pixels.
A color is defined by a sample of the chrominance components. Examples of YCbCr sampling are shown in FIG. 1, in which the pixels are represented by squares and a color, which can be common to several pixels in the case of a sub-sampling, is represented by a circle or an ellipse.
In transcoding systems, a video signal is received in an encoded format, for example according to the H264 or HEVC standards, and is then decoded into an RGB or YCbCr format, which is more voluminous in terms of memory space.
Various processing operations are usually applied to the decoded images before being transmitted to a display system. Between each processing, the images are stored (e.g., in buffer memories) in the decoded format.
To be able to transcode high resolution video signals, the memories of the systems need to have a large capacity. This has disadvantages, for example, with regard to energy consumption and the space occupied in an electronic circuit.
It can therefore be advantageous to perform a compression of the decoded images before storage, and then a decompression when reading from the memory before processing. Such use of compression and decompression should not introduce degradation of the images, and also should not be very complex to allow these operations to be carried out in real time.
To limit the degradation, the compression factor should not be too high, ranging up to 5, for example. Moreover, the limitation on the complexity may prohibit the use of methods of compensation of movement and of information from adjacent images or regions of the image distant from the data block being processed.
In typical compression and decompression operations carried out independently on the three components of an item of data, it is possible for erroneous pixels to occasionally appear because of inconsistencies in the quantifications of the different components of a same pixel. The potential correlations between components are not taken into account, and it turns out that the overall compression may be more efficient by taking account of the potential correlations.
It is possible to apply a second compression processing to eliminate the redundancies between two components, but this would be at the cost of calculating an independent first compression over each component. It is also possible to add a pre-processing of the data to move into a more advantageous colorimetric domain, offering a homogeneous distribution of the notable differences over the three components, for example. However, this type of pre-processing generally requires complex nonlinear transformations.
Moreover, there are so-called asymmetric methods in which a greater compression is carried out on a component considered to be less important than the others. Yet, this type of compression produces very bad performance in cases where the sacrificed component is locally pertinent.
Typical compression/decompression methods have either low compression factors, data degradation, or very high complexities. Furthermore, they may be difficult to apply at the input/output of the memories of transcoding systems.